﻿// Decompiled with JetBrains decompiler
// Type: DnProcessSimulateCommands.ICApFLEXCableAttributeViewModel
// Assembly: DnProcessSimulateCommands, Version=2402.0.0.890, Culture=neutral, PublicKeyToken=null
// MVID: A885D881-AEDF-447E-852A-6F13102E089C
// Assembly location: C:\Program Files\Tecnomatix_2402\eMPower\DotNetCommands\DnProcessSimulateCommands.dll

using System.Collections.Generic;
using System.ComponentModel;
using Tecnomatix.Engineering;
using Tecnomatix.Engineering.PrivateImplementationDetails;


namespace DnProcessSimulateCommands;

public interface ICApFLEXCableAttributeViewModel : 
  ICApCableNameViewModel,
  INotifyPropertyChanged,
  ICApCableExtentDescriptor,
  ICApCableCreationModeStatus,
  ICApCableFrameStatus,
  ICApCableParameterChangeChecker
{
  event PropertyChangedEventHandler PropertyChanging;

  event PropertyChangedEventHandler PropertyWillChange;

  event PropertyChangedEventHandler PropertyAttributeChanged;

  void NotifyPropertyAttributeChanged(string propertyName);

  void NotifyCableAttributeChanged();

  bool IsLicenseOn { get; set; }

  ITxCable Cable { get; set; }

  ITxObject StartAttachPartTo { get; set; }

  ITxObject EndAttachPartTo { get; set; }

  ITxLocatableObject PassNearFrame { get; set; }

  ITxPointCloudLayer OptimizationPointCloudLayer { get; set; }

  double RetractSystemCurrentMaxRetractedLength { get; set; }

  bool IsFrameCtrlPassNearFocused { get; }

  double Radius { get; set; }

  double Density { get; set; }

  double YoungsModulus { get; set; }

  double MaxTension { get; set; }

  double MaxTwistAngle { get; set; }

  double MinCurvatureRadius { get; set; }

  double MaxContactForce { get; set; }

  bool IsMaxTwistAngleLimited { get; set; }

  bool IsMaxTwistAngleEnabled { get; }

  bool IsMinCurvatureRadiusLimited { get; set; }

  bool IsMinCurvatureRadiusEnabled { get; }

  bool IsMaxContactForceLimited { get; set; }

  PickableControlFocusStatus FocusedPickableControl { get; set; }

  bool IsFrameCtrlStartFocused { get; }

  bool IsFrameCtrlEndFocused { get; }

  bool IsPointCloudLayerCtrlOptimizationFocused { get; }

  bool IsMaxContactForceEnabled { get; }

  bool IsYoungsModulusOptimizationActivated { get; set; }

  bool IsRadiusOptimizationActivated { get; set; }

  bool IsLengthOptimizationActivated { get; set; }

  double FulcrumLength { get; set; }

  double Oscillation { get; set; }

  TxCableDataResolution Resolution { get; set; }

  List<CApFLEXAttachment> AttachmentDataList { get; set; }

  double RadiusStepSize { get; set; }

  double LengthStepSize { get; set; }

  double FulcrumStepSize { get; set; }

  double MinCurvatureStepSize { get; set; }

  CApCableStatusAnalysis CableStatusAnalysis { get; set; }

  string Message { get; set; }

  CApCableStatusMessageType StatusMessageType { get; set; }

  bool IsGenerateEnabled { get; set; }

  bool IsCloseEnabled { get; set; }

  bool IsOptimizeEnabled { get; }

  bool IsRemoveAttachmentEnabled { get; set; }

  bool IsAddAttachmentEnabled { get; set; }

  bool IsEditAttachmentEnabled { get; set; }

  bool IsEditMode { get; set; }

  bool IsCableEditable { get; set; }

  bool IsEquipmentEditable { set; }

  CApCableScopeStatus CableScopeStatus { get; }

  bool AreEquipmentParametersEnabled { get; }

  bool IsCableParameterEnabled { get; }

  bool IsParametersExpanded { get; set; }

  bool IsAttachmentExpanded { get; set; }

  bool IsOptimizationExpanded { get; set; }

  bool IsCreationParameter(string propertyName);

  bool IsFrameParameter(string propertyName);

  bool IsOptimizationParameter(string propertyName);

  void AttachmentViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e);

  void SetLengthNoEventSent(double value);

  void SetRadiusNoEventSent(double value);

  void SetDensityNoEventSent(double value);

  void SeYoungsModulusNoEventSent(double value);

  void SetFulcrumNoEventSent(double value);

  void SetMaxTentionNoEventSent(double value);

  void SetMaxTwistAngleNoEventSent(double value);

  void SetMaxContactForceNoEventSent(double value);

  void SetMinCurvatureRadiusNoEventSent(double value);

  void AddAttachment(CApFLEXAttachment attachment);

  void RemoveAttachment(CApFLEXAttachment attachment);

  void ClearAttachments();

  void ChangeStartLocatedAttachmentFrame();

  void ChangeEndLocatedAttachmentFrame();

  void UpdateMaxRetractedLength();

  void UpdateEndAttachmentLengthFromStart();

  List<CApFLEXAttachment> RawAttachmentList();

  void InitAttachmentList();

  bool IsAttachmentListNull();

  int CountAttachments();

  void SetAttachmentList(List<CApFLEXAttachment> attachments);

  ITxCableOptimizationData ComputeOptimizationData();

  bool IsBeingInitialized { get; set; }

  bool IsCableBeingGenerated { get; set; }
}
